package com.study.hot.di.dagger.dagger2.child_sub;

import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;


import javax.inject.Inject;

public class DependActivity extends AppCompatActivity {

    @Inject
    Child childA;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);

        // 使用依赖的方式，需要先实例化Father，然后传入Child中，比较繁琐推荐使用@SubComponent
        /*FatherComponent fatherComponent = DaggerFatherComponent.create();
        DaggerChildComponent.builder().fatherComponent(fatherComponent).build().inject(this);*/

        // 使用@SubComponent 方式一 在Child中声明构造者
       /* DaggerSubFatherComponent.create().buildChildComponent()
                .build().inject(this);*/

        // 简化写法，使用抽象工厂
        /*DaggerSubFatherComponent.create().buildChildSubComponent()
                .inject(this);*/

        tv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        tv.setOnClickListener(v -> tv.setText(childA.c()));
        setContentView(tv);
    }
}
